Comprensión de listas
La comprensión de listas es una sintaxis de Python que permite crear listas de forma concisa y eficiente. Se basa en el uso de expresiones lambda, que son funciones anónimas que se pueden utilizar para realizar operaciones simples.
Estructura básica
La estructura básica de una comprensión de listas es la siguiente:
Python
[ expresión para cada elemento en secuencia ]
Por ejemplo, la siguiente comprensión de listas crea una lista de los cuadrados de los números del 1 al 10:
Python
cuadrados = [ x ** 2 for x in range(1, 11) ]
Esta comprensión de listas se puede leer de la siguiente manera:
- Para cada elemento
x
en la secuenciarange(1, 11)
, - Realiza la expresión
x ** 2
. - Agrega el resultado a la lista
cuadrados
.
Expresión para cada elemento
La expresión para cada elemento puede ser cualquier expresión válida de Python. Puede ser una expresión simple, como en el ejemplo anterior, o puede ser una expresión más compleja que incluya funciones lambda.
Funciones lambda
Las funciones lambda se pueden utilizar en las comprensiones de listas para realizar operaciones más complejas. Una función lambda es una función anónima que se puede definir de la siguiente manera:
Python
lambda argumentos: expresión
Por ejemplo, la siguiente comprensión de listas crea una lista de los números del 1 al 10, pero solo los que son pares:
Python
pares = [ x for x in range(1, 11) if x % 2 == 0 ]
Esta comprensión de listas se puede leer de la siguiente manera:
- Para cada elemento
x
en la secuenciarange(1, 11)
, - Si la expresión
x % 2 == 0
es verdadera, - Agrega el elemento
x
a la listapares
.
Función lambda dentro de otra función
Las funciones lambda también se pueden utilizar dentro de otras funciones. Por ejemplo, la siguiente función crea una lista de los números del 1 al 10, pero solo los que son divisibles por 3:
Python
def divisible_por_tres(x):
return x % 3 == 0
numeros_divisibles_por_tres = [ x for x in range(1, 11) if divisible_por_tres(x) ]
Esta función se puede leer de la siguiente manera:
- La función
divisible_por_tres()
toma un númerox
como argumento. - La función devuelve
True
six
es divisible por 3. - La función
numeros_divisibles_por_tres()
crea una lista de los números del 1 al 10. - Para cada elemento
x
en la secuenciarange(1, 11)
, - Si la expresión
divisible_por_tres(x)
es verdadera, - Agrega el elemento
x
a la listanumeros_divisibles_por_tres
.
Ejemplos adicionales
A continuación se muestran algunos ejemplos adicionales de cómo utilizar las comprensiones de listas:
- Para crear una lista de los cuadrados de los números del 1 al 10, pero solo los que son mayores que 25:
Python
cuadrados_mayores_que_25 = [ x ** 2 for x in range(1, 11) if x ** 2 > 25 ]
- Para crear una lista de las cadenas "par" si el número es par y "impar" si el número es impar:
Python
pares_o_impares = [ "par" if x % 2 == 0 else "impar" for x in range(1, 11) ]
- Para crear una lista de las cadenas "Hola" si el número es mayor que 5 y "Adiós" si el número es menor o igual a 5:
Python
saludos = [ "Hola" if x > 5 else "Adiós" for x in range(1, 11) ]
Las comprensiones de listas son una herramienta poderosa que puede utilizarse para crear listas de forma concisa y eficiente. Con un poco de práctica, podrás dominar el uso de las comprensiones de listas para crear código más eficiente y reutilizable.